/**
 * 
 */
package com.arx.interactive;

/**
 * @author Donald
 */
abstract class InteractiveCommonVars implements InteractiveBase {
	private float				_framedelay;
	private InteractiveObject	CURRENTINTER;
	private InteractiveObject	DRAGINTER;
	private boolean				FAST_RELEASE;
	private long				goreMode;
	private boolean				init;
	private InteractiveObject[]	iobj;
	private char[]				lock;
	private int					nbmax;
	private long				TOTAL_BODY_CHUNKS_COUNT;
	// Releases An Interactive Object from memory
	// *************************************************************************************
	// First is always the player
	private TreatZoneIO[]		treatio;
	private int					TREATZONE_CUR;
	private int					TREATZONE_MAX;
	protected final float get_framedelay() {
		return _framedelay;
	}
	protected final InteractiveObject getCURRENTINTER() {
		return CURRENTINTER;
	}
	protected final InteractiveObject getDRAGINTER() {
		return DRAGINTER;
	}
	protected final long getGoreMode() {
		return goreMode;
	}
	protected final char[] getLock() {
		return lock;
	}
	protected final int getNbmax() {
		return nbmax;
	}
	protected final long getTOTAL_BODY_CHUNKS_COUNT() {
		return TOTAL_BODY_CHUNKS_COUNT;
	}
	protected final TreatZoneIO[] getTreatio() {
		return treatio;
	}
	protected final int getTREATZONE_CUR() {
		return TREATZONE_CUR;
	}
	protected final int getTREATZONE_MAX() {
		return TREATZONE_MAX;
	}
	protected final boolean isFAST_RELEASE() {
		return FAST_RELEASE;
	}
	protected final boolean isInit() {
		return init;
	}
	protected final void set_framedelay(final float _framedelay) {
		this._framedelay = _framedelay;
	}
	protected final void setCURRENTINTER(final InteractiveObject cURRENTINTER) {
		CURRENTINTER = cURRENTINTER;
	}
	protected final void setDRAGINTER(final InteractiveObject dRAGINTER) {
		DRAGINTER = dRAGINTER;
	}
	protected final void setFAST_RELEASE(final boolean fAST_RELEASE) {
		FAST_RELEASE = fAST_RELEASE;
	}
	protected final void setGoreMode(final long goreMode) {
		this.goreMode = goreMode;
	}
	protected final void setInit(final boolean init) {
		this.init = init;
	}
	protected final void setLock(final char[] lock) {
		this.lock = lock;
	}
	/**
	 * Gets a specific {@link InteractiveObject} by its reference index.
	 * @param ref the reference index
	 * @return {@link InteractiveObject}
	 */
	public final InteractiveObject getInteractiveObject(final int ref) {
		InteractiveObject io = null;
		if (iobj != null 
				&& ref >= 0 
				&& ref < iobj.length) {
			io = iobj[ref];
		}
		return io;
	}
	protected final void setNbmax(final int nbmax) {
		this.nbmax = nbmax;
	}
	protected final void setTOTAL_BODY_CHUNKS_COUNT(
			final long tOTAL_BODY_CHUNKS_COUNT) {
		TOTAL_BODY_CHUNKS_COUNT = tOTAL_BODY_CHUNKS_COUNT;
	}
	protected final void setTreatio(final TreatZoneIO[] treatio) {
		this.treatio = treatio;
	}
	protected final void setTREATZONE_CUR(final int tREATZONE_CUR) {
		TREATZONE_CUR = tREATZONE_CUR;
	}
	protected final void setTREATZONE_MAX(final int tREATZONE_MAX) {
		TREATZONE_MAX = tREATZONE_MAX;
	}
}
